package flex.cc.system.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import flex.cc.base.dto.LoginAuthDto;
import flex.cc.system.entity.DictCodeEntity;
import flex.cc.system.vo.DictCodeVo;
import flex.cc.system.vo.DictOptionVo;

/**
 *
 *
 * @author lmq
 * @email limengqi@sinosoft.com.cn
 * @date 2020-09-18 16:04:05
 */
public interface DictCodeService extends IService<DictCodeEntity> {

	/**
	 * 保存或修改数据字典副类型
	 * @param vo
	 * @param loginAuthDto
	 * @return
	 */
	public String saveOrUpdateDictCode(DictCodeVo vo,LoginAuthDto loginAuthDto);

	/**
	 * 根据页面所传条件查询数据字典副类型信息-打开编辑type页面
	 * @param dictTypeEntity
	 * @return
	 */
	public List<DictCodeEntity> searchAllCode(DictCodeEntity dictCodeEntity,LoginAuthDto loginAuthDto);

	/**
	 * 根据type、code和comcode查询数据字典副类型信息
	 * @param type
	 * @param code
	 * @param comCode
	 * @param typeVersion 版本号
	 * @return
	 */
	public DictCodeEntity searchAllCodeByTypeCode(String type,String code,int typeVersion,String comCode);

	/**
	 * 根据typeCode查询数据字典副类型-打开编辑type页面
	 * @param dictTypeEntity
	 * @return
	 */
	public IPage<DictCodeEntity> getdictCodeList(DictCodeEntity dictCodeEntity);

	/**
	 * 根据type和comCode查询数据字典副类型信息-list
	 * @param type
	 * @param comCode
	 * @param typeVersion 版本号
	 * @return
	 */
	public List<DictCodeEntity> searchCodeByTypeList(String type,int typeVersion,String comCode);

	/**
	 * 根据type和comCode查询数据字典副类型信息-list
	 * @param type
	 * @param comCode
	 * @param typeVersion 版本号
	 * @return
	 */
	public List<Map<String, String>> searchSelectOptionsByType(String type,int typeVersion,String comCode);

	/**
	 * 根据type和comCode查询数据字典副类型信息-map
	 * @param type
	 * @param comCode
	 * @param typeVersion 版本号
	 * @return
	 */
	public Map<String, Object> searchCodeByTypeMap(String type,int typeVersion,String comCode);

	/**
	 * 注销数据字典副类型
	 * @param dictCodeEntity
	 * @return
	 */
	public String updateDictTypeById(DictCodeEntity dictCodeEntity,LoginAuthDto loginAuthDto);

	/**
	 * 逻辑删除数据字典code
	 * @param id
	 * @return
	 */
	public boolean deleteDictCodeById(Long id,LoginAuthDto loginAuthDto);

	/**
	 * 根据type查询数据字典code，用来显示下拉选项
	 * @param dicType
	 * @param validStatus
	 * @return
	 */
	public List<DictOptionVo> getSelectOptions(String dicType, String validStatus);
	
	/**
	 * 查询行政区划下拉选项的值
	 * @param parentId 上级编号
	 * @return
	 */
	public List<DictOptionVo> getAdmOptions(String parentIds);
	
	/**
	*
	* @author WANGCONG
	* 2021年12月24日下午12:49:12
	* @desc 实体信息获取
	*/
	public DictCodeEntity getOneByParams(Map<String, Object> params);

	/**
	 * @description 根据参数查询字典数据列表
	 * @param params 查询参数
	 * @return
	 * @author wkangle
	 * @time 2021/12/31 0031 17:06
	 * @exception/throws
	*/
	List<DictCodeEntity> queryDictCodeListByParams(Map<String, Object> params);

	/**
	 * @description 查询卡券节日提示开关
	 * @return
	 * @author wkangle
	 * @time 2022/01/11 0011 14:06
	 * @exception/throws
	 */
	DictCodeEntity queryCouponFestivalTips();

	/**
	 * @description 查询咨询类卡券企业维系
	 * @param
	 * @return
	 * @author wkangle
	 * @time 2022/02/11 0011 13:34
	 * @exception/throws
	*/
	DictCodeEntity queryConsultWorkWeiXin(Map<String, String> params);

	/**
	 * 查询行政区划下拉选项的值
	 * @param level 所属等级
	 * @return
	 */
	List<DictOptionVo> getAdmOptionsByLeval(String level);
}

